package day01;

// 组队竞赛
// 3*n个选手（n组，每组3位选手），每个组水平值=中位数
// 要使水平值之和最大


// 修改：

import java.util.Arrays;
import java.util.Scanner;

public class Main1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();
            long[] level = new long[3*n];
            for (int i = 0; i < 3*n; i++) {
                level[i] = in.nextLong();
            }
            // 升序排序
            Arrays.sort(level);
            long sum = 0;
            for (int i = 0; i < n; i++) {
                // 注意：这里各队伍的水平值的下标！
                sum += level[level.length - 2*(i+1)];
            }
            System.out.println(sum);
        }
    }
}







// 存在问题（数组大小可能不够  + 思路直接错误！！）

// 思路：进行降序排列，从n下标开始数n个数的和就是max和，将前n个水平值作为各组的最大值就行，后面最小值随便，不用管
//import java.util.Arrays;
//import java.util.Scanner;
//public class Main1 {
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int n = in.nextInt(); // 组数
//        int[] level = new int[100];
//        int index = 0;
//        // 输入选手水平值
//        while (index < 3*n) {
//            level[index] = in.nextInt();
//            index++;
//        }
//        // 排序:升序
//        Arrays.sort(level,0,index);
//
//        // 那就从后往前取：
//        int sum = 0;
//        while (n != 0) {
//            sum += level[index-1-n];
//            n--;
//        }
//        System.out.println(sum);
//    }
//}





